<%@page contentType="text/html" pageEncoding="UTF-8" import="Modelo.*, java.util.*, javax.swing.JOptionPane"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<%
String idpregunta = (String) request.getParameter("idpre");
Pregunta p= new Pregunta().findPregunta(Long.parseLong(idpregunta));

if(p.getTipo2().equals("1")){
 String nombre=new String(request.getParameter("contenido").getBytes("ISO-8859-1"),"UTF-8");
 String max = (String) request.getParameter("max");
 String idin = (String) request.getParameter("indicadores");
 String ancho1 = (String) request.getParameter("ancho");
 String ancho2[] = ancho1.split("px");
 String alto1 = (String) request.getParameter("alto");
 String alto2[] = alto1.split("px");
 //JOptionPane.showMessageDialog(null, "ancho"+ancho2[0]+"alto"+alto2[0]);
 
            if (max != null && max.equals("")) {
                max = "Ilimitada";
            } else {
                String maximo = (String) request.getParameter("max");
                max = maximo;
            }
          
            Long id=p.getId();
            PreguntaAbierta pa=(PreguntaAbierta)p;
           
           

            if(pa.getIndicador()!=null){
                List<Pregunta> lp2=new ArrayList<Pregunta>();
                List lp=pa.getIndicador().getPregunta();
                Iterator it=lp.iterator();
                while(it.hasNext()){
                Pregunta ppp=(Pregunta) it.next();
                if(!ppp.getId().equals(pa.getId())){
                 lp2.add(ppp);
                }
            }
            pa.getIndicador().setPregunta(lp2);
            
            new Indicador().actualizarIndicador(pa.getIndicador());
            if (idin != null && !idin.equals("0")) {
               pa.asociarIndicador(pa.getId(), Long.parseLong(idin));
               Indicador in22=new Indicador().findIndicador(Long.parseLong(idin));
               List lp3=in22.getPregunta();
               lp3.add(pa);
               in22.setPregunta(lp3);
               new Indicador().actualizarIndicador(in22);
            }
            if((idin != null && idin.equals("0"))){
            pa.asociarIndicador(pa.getId(), new Long("-1"));

            }

            }else{
            if (idin != null && !idin.equals("0")) {
                new Pregunta().asociarIndicador(id, Long.parseLong(idin));
                new Indicador().asignarP(Long.parseLong(idin), new Pregunta().findPregunta(id));
            }
            }

     pa.actualizarTodo(nombre, pa.getId(), max, alto2[0], ancho2[0]);

}//fin primer if
if(p.getTipo2().equals("2")){
 String nombre=new String(request.getParameter("contenido").getBytes("ISO-8859-1"),"UTF-8");
 String max = (String) request.getParameter("max");
 String idin = (String) request.getParameter("indicadores");
 String ancho1 = (String) request.getParameter("ancho");
 String ancho2[] = ancho1.split("px");
 String alto1 = (String) request.getParameter("alto");
 String alto2[] = alto1.split("px");
 
            if (max != null && max.equals("")) {
                max = "Ilimitada";
            } else {
                String maximo = (String) request.getParameter("max");
                max = maximo;
            }

            Long id=p.getId();
            PreguntaAbierta pa=(PreguntaAbierta)p;



            if(pa.getIndicador()!=null){
                List<Pregunta> lp2=new ArrayList<Pregunta>();
                List lp=pa.getIndicador().getPregunta();
                Iterator it=lp.iterator();
                while(it.hasNext()){
                Pregunta ppp=(Pregunta) it.next();
                if(!ppp.getId().equals(pa.getId())){
                 lp2.add(ppp);
                }
            }
            pa.getIndicador().setPregunta(lp2);

            new Indicador().actualizarIndicador(pa.getIndicador());
            if (idin != null && !idin.equals("0")) {
               pa.asociarIndicador(pa.getId(), Long.parseLong(idin));
               Indicador in22=new Indicador().findIndicador(Long.parseLong(idin));
               List lp3=in22.getPregunta();
               lp3.add(pa);
               in22.setPregunta(lp3);
               new Indicador().actualizarIndicador(in22);
            }
            if((idin != null && idin.equals("0"))){
            pa.asociarIndicador(pa.getId(), new Long("-1"));

            }

            }else{
            if (idin != null && !idin.equals("0")) {
                new Pregunta().asociarIndicador(id, Long.parseLong(idin));
                new Indicador().asignarP(Long.parseLong(idin), new Pregunta().findPregunta(id));
            }
            }

     pa.actualizarTodo(nombre, pa.getId(), max, alto2[0], ancho2[0]);


}

//empieza la 3
if(p.getTipo2().equals("3")||p.getTipo2().equals("4")){
       String pregunta=new String(request.getParameter("contenido").getBytes("ISO-8859-1"),"UTF-8");
       String respuestas=new String(request.getParameter("respuestas").getBytes("ISO-8859-1"),"UTF-8");
       String checkbox = (String) request.getParameter("abierta");
       boolean otro = false;
       if (checkbox != null && checkbox.equals("on")) {
       otro = true;
       }

          Long id=p.getId();
            PreguntaCerrada pc=(PreguntaCerrada)p;
                   // Long id = new PreguntaCerrada().agregarP(pregunta, tipo, otro);

                String idin = (String) request.getParameter("indicadores");
                if(pc.getIndicador()!=null){
                List<Pregunta> lp2=new ArrayList<Pregunta>();
                List lp=pc.getIndicador().getPregunta();
                Iterator it=lp.iterator();
                while(it.hasNext()){
                Pregunta ppp=(Pregunta) it.next();
                if(!ppp.getId().equals(pc.getId())){
                 lp2.add(ppp);
                }
            }
            pc.getIndicador().setPregunta(lp2);

            new Indicador().actualizarIndicador(pc.getIndicador());
            if (idin != null && !idin.equals("0")) {
               pc.asociarIndicador(pc.getId(), Long.parseLong(idin));
               Indicador in22=new Indicador().findIndicador(Long.parseLong(idin));
               List lp3=in22.getPregunta();
               lp3.add(pc);
               in22.setPregunta(lp3);
               new Indicador().actualizarIndicador(in22);
            }
            if((idin != null && idin.equals("0"))){
            pc.asociarIndicador(pc.getId(), new Long("-1"));

            }

            }else{
            if (idin != null && !idin.equals("0")) {
                new Pregunta().asociarIndicador(id, Long.parseLong(idin));
                new Indicador().asignarP(Long.parseLong(idin), new Pregunta().findPregunta(id));
            }
            }

                  
                  
                  if(pc.getRespuestas().size()!=0){
                  pc.borrarRespuestas(pc.getId());
                  }


                     StringTokenizer tokens = new StringTokenizer(respuestas, "\n");
                    while (tokens.hasMoreTokens()) {
                        String aux1 = tokens.nextToken();
                        Respuesta res = new Respuesta(aux1);
                        new PreguntaCerrada().asignarR(id, res);
                        
                    }
                    
       pc.actualizar(pregunta, pc.getId(),otro);

}

                if(p.getTipo2().equals("5")){

                        String pregunta=new String(request.getParameter("pregunta").getBytes("ISO-8859-1"),"UTF-8");
                        String subpreguntas=new String(request.getParameter("subpregunta").getBytes("ISO-8859-1"),"UTF-8");
                        String respuestas=new String(request.getParameter("respuestas").getBytes("ISO-8859-1"),"UTF-8");

                        Long idP=p.getId();
                        PreguntaCompuesta pcom=(PreguntaCompuesta)p;
                        if(pcom.getEtiquetas().size()!=0){
                        pcom.borrarEtiquetas(pcom.getId());
                        }
                       // Long idP = new PreguntaCompuesta().agregarP(pregunta);
                        StringTokenizer etiquetas = new StringTokenizer(subpreguntas, "\n");
                        String[] opciones = respuestas.split("\n");



                        while (etiquetas.hasMoreTokens()) {
                            String aux5 = etiquetas.nextToken();
                            Long idEt = new Etiqueta().agregarE(aux5);
                            Etiqueta et = new Etiqueta();

                            for (int i = 0; i < opciones.length; i++) {
                                String aux6 = opciones[i];
                                Respuesta res = new Respuesta(aux6);
                                et.asignarR(idEt, res);
                            }


                            new PreguntaCompuesta().asignarE(idP, idEt);
                        }
                String idin = (String) request.getParameter("indicadores");
                if(pcom.getIndicador()!=null){
                List<Pregunta> lp2=new ArrayList<Pregunta>();
                List lp=pcom.getIndicador().getPregunta();
                Iterator it=lp.iterator();
                while(it.hasNext()){
                Pregunta ppp=(Pregunta) it.next();
                if(!ppp.getId().equals(pcom.getId())){
                 lp2.add(ppp);
                }
            }
            pcom.getIndicador().setPregunta(lp2);

            new Indicador().actualizarIndicador(pcom.getIndicador());
            if (idin != null && !idin.equals("0")) {
               pcom.asociarIndicador(pcom.getId(), Long.parseLong(idin));
               Indicador in22=new Indicador().findIndicador(Long.parseLong(idin));
               List lp3=in22.getPregunta();
               lp3.add(pcom);
               in22.setPregunta(lp3);
               new Indicador().actualizarIndicador(in22);
            }
            if((idin != null && idin.equals("0"))){
            pcom.asociarIndicador(pcom.getId(), new Long("-1"));

            }

            }else{
            if (idin != null && !idin.equals("0")) {
                new Pregunta().asociarIndicador(idP, Long.parseLong(idin));
                new Indicador().asignarP(Long.parseLong(idin), new Pregunta().findPregunta(idP));
            }
            }
}

response.sendRedirect(request.getContextPath() + "/pregunta/mostrar.jsp");

%>
